Computer animation and other computer modeling applications combine two-dimensional (2D) or three-dimensional (3D) models of objects or characters and their corresponding programmed or keyframed movement. These models are constructed out of geometrical vertices, faces, and edges in a 3D coordinate system. One form of computer animation involves attaching a 3D model to a transformation hierarchy approximating a skeleton to dictate an object or a character's movement. The skeleton is surrounded by a surface mesh representing the object or character's boundaries. A 3D surface mesh may have a high level of resolution and include polygons, or faces, of various sizes making up the surface of the mesh, and the surface mesh may be shaped and deformed as required by an animator or other operator to achieve a desired result.
In one stage of animation, the surface mesh may be attached to various points of a control hull, otherwise referred to as a cage, to allow an animator to perform additional deformations of the surface mesh of the character. The cage may be made up of a large number of control points which allow an animator or other operator to control deformation or movement of the surface mesh during a particular sequence, pose, or gesture. The association of the control points and the selected points of the surface mesh may be automated or performed manually to optimize a desired deformation effect. In comparison to the surface mesh, the control points of the cage—and resulting surfaces—may be constructed at a much lower resolution, resulting in coarse deformations of the surface mesh in response to adjustment of one or more control points of the low resolution cage.
This is particularly problematic where the control points of the cage do not accurately reflect the shape of the surface mesh, or do not represent a full range of possible deformations of the surface mesh. This is most noticeable in cases where a deformation results in the surface being stretched or compressed to have a concave or convex shape where traditional techniques result in undesired uneven stretching in the convex case or self-intersection in the concave case. While some existing techniques such as subdividing the control mesh attempt to perform smoothing operations to reduce undesired artifacts resulting from these types of deformations, they still fail to accurately produce desired results in real-time, with distortions still generated particularly as the offset from the deformation surface increases.
These problems have traditionally been addressed either by performing manual adjustment to every undesired artifact resulting from a particular deformation, or by not attempting a particular movement or expression of the character as the particular deformation was deemed too impractical and costly for inclusion in large scale animation projects.
Thus, the existing systems and methods are unable to provide a solution for quickly and accurately deforming a polygonal mesh of a character in real-time. Therefore, it may be advantageous to determine deformation of a set of points in real-time based on a volume the cage.